﻿using System;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;

namespace WxLib.Business
{
    /// <summary>
    /// 查询付款到银行响应模型
    /// </summary>
    [XmlRoot("xml", IsNullable = false)]
    public class QueryPayToBankResponse
    {
        /// <summary>
        /// 返回状态码
        /// </summary>
        public string return_code { get; set; }//是	String(16)	SUCCESS/FAIL此字段是通信标识，非交易标识，交易是否成功需要查看result_code来判断
        /// <summary>
        /// 返回信息
        /// </summary>
        public string return_msg { get; set; }//否	String(128)	返回信息，如非空，为错误原因签名失败参数格式校验错误

        ///////////////////////////以下字段在return_code为SUCCESS的时候有返回////////////////////////////
        /// <summary>
        /// 业务结果
        /// </summary>
        public string result_code { get; set; }//是	String(16)	SUCCESS/FAIL
        /// <summary>
        /// 错误代码
        /// </summary>
        public string err_code { get; set; }//否	String(32)	错误码信息
        /// <summary>
        /// 错误代码描述
        /// </summary>
        public string err_code_des { get; set; }//否	String(128)	结果信息描述
        //////////////////////////以下字段在return_code 和result_code都为SUCCESS的时候有返回//////////////////////////
        /// <summary>
        /// 店面号
        /// </summary>
        public string mch_id { get; set; }//是	string(32)	店面号
        /// <summary>
        /// 店面企业付款单号
        /// </summary>
        public string partner_trade_no { get; set; }//是	string(32)	店面单号
        /// <summary>
        /// 微信企业付款单号
        /// </summary>
        public string payment_no { get; set; }//是	string(64)	即为微信内部业务单号
        /// <summary>
        /// 银行卡号
        /// </summary>
        public string bank_no_md5 { get; set; }//是	string(32)	收款用户银行卡号(MD5加密)
        /// <summary>
        /// 用户真实姓名
        /// </summary>
        public string true_name_md5 { get; set; }//是	string(32)	收款人真实姓名（MD5加密）
        /// <summary>
        /// 代付金额
        /// </summary>
        public int amount { get; set; }//是	int	代付订单金额RMB：分
        /// <summary>
        /// 状态
        /// </summary>
        public string status { get; set; }//是	string	代付订单状态：PROCESSING（处理中，如有明确失败，则返回额外失败原因；否则没有错误原因）SUCCESS（付款成功）FAILED（付款失败）BANK_FAIL（银行退票，订单状态由付款成功流转至退票,退票时付款金额和手续费会自动退还）
        /// <summary>
        /// 手续费金额
        /// </summary>
        public string cmms_amt { get; set; }//是	int	手续费订单金额 RMB：分
        /// <summary>
        /// 店面下单时间
        /// </summary>
        public string create_time { get; set; }//是	String	微信侧订单创建时间
        /// <summary>
        /// 成功付款时间
        /// </summary>
        public string pay_succ_time { get; set; }//否	String	微信侧付款成功时间（但无法保证银行不会退票）
        /// <summary>
        /// 失败原因
        /// </summary>
        public string reason { get; set; }//否	String	订单失败原因（如：余额不足）
    }
}
